import router from './index'
import { ElMessage } from 'element-plus'
import { getToken } from '@/utils/auth'
import store from '@/store'
import { getUserInfo } from '@/api/api'
// 白名单路由
const whiteList = ['/login', '/404']

router.beforeEach(async (to, from, next) => {
    // 获取token
    document.title = to.meta.title || '默认标题'
    const hasToken = getToken()

    if (hasToken) {
        if (to.path === '/login') {
            // 已登录且要跳转的页面是登录页
            next({ path: '/' })
        } else {
            // 已登录访问其他页面
            const username = store.getters.getUsername
            if (username) {
                next()
            } else {
                const res = await getUserInfo()
                if (res.code === 0) {
                    store.commit('setUsername', res.data.username)
                    next()
                } else {
                    ElMessage.error(res.message)
                    next({ path: '/login' })
                }
            }
        }
    } else {
        // 未登录
        if (whiteList.includes(to.path)) {
            // 在免登录白名单中，直接进入
            next()
        } else {
            // 其他没有访问权限的页面将被重定向到登录页面
            ElMessage.warning('请先登录')
            next(`/login?redirect=${to.path}`)
        }
    }
})

router.afterEach(() => {
    // 路由切换后的操作，例如关闭loading等
}) 